<?php

class RegistrationController extends UserController
{
	public $defaultAction = 'index';

	/**
	 * Declares class-based actions.
	 */
	public function actions() {
		return array(
			'captcha'=>array(
				'class'=>'CCaptchaAction',
				'backColor'=>0xFFFFFF,
			),
		);
	}    
    

    public function actionSuccess() {
        $this->render('response', array('title' => UserModule::t('Регистрация прошла успешно.'), 
		'message' => UserModule::t('Спасибо за регистрацию на нашем проекте! Вам на почту было отправлено письмо с инструкциями по активации аккаунта.')));
    }

	
	/**
	 * Registration user
	 */
	public function actionIndex() {
		$this->pageTitle= Yii::t('app', 'Регистрация');
		    //if ($this->checkLoggedIn()) $this->redirect(Yii::app()->controller->module->profileUrl);
            $model = new RegistrationForm();
            
            if(isset($_POST['RegistrationForm'])) {
                $model->attributes=$_POST['RegistrationForm'];
                if ($model->validate()) {
					if (!Yii::app()->controller->module->sendActivationEmail && !Yii::app()->controller->module->approveByAdmin) {
						$model->usergroup_id = UserModule::USERGROUP_USER;
						$model->approved_date = time();
						$model->approved = 1;
					} else {
						$model->usergroup_id = UserModule::USERGROUP_CANDIDATE;
						$model->approved = 0;
					}
					
					$model->country_id = UserModule::DEFAULT_COUNTRY;
					$model->region_id = UserModule::DEFAULT_REGION;
					
					$model->hidden = 0;
					$model->email = $model->username;
					$model->hkey = UserModule::encrypting(microtime());
					if ($model->save()) {
                        if (Yii::app()->controller->module->sendActivationEmail) {
 							$result = $this->sendActivationEmail($model);
							if ($result) {
								Yii::app()->user->setFlash('registration',UserModule::t("Письмо было отправлено."));
							} else {
								Yii::app()->user->setFlash('registration',UserModule::t("Произошла ошибка при попытке отправить письмо."));
							}
                            //UserModule::sendMail($model->email,UserModule::t("You registered from {site_name}",array('{site_name}'=>Yii::app()->name)),UserModule::t("Please activate you account go to {activation_url}",array('{activation_url}'=>$activation_url)));
                        }                    
                    
						//@todo: add flash message depended from veriants
						//Yii::app()->user->setFlash('registration_success',UserModule::t("Thank you for your registration. Check email for activate your account."));
						$this->redirect(array('/user/registration/success'));
					}
                }
            }
			$this->render('index',array('model'=>$model));
	}
    
	public function actionActivation() {
		if ((isset($_GET['email']) && '' != $_GET['email']) && (isset($_GET['activkey']) && ''!=$_GET['activkey'])) {
            $email = $_GET['email'];
            $activkey = $_GET['activkey'];
			$find = Users::model()->findByAttributes(array('username'=>$email));
			if ($find && 1 == $find->approved) {
                $this->render('response', array('title' => UserModule::t('Активация аккаунта'), 'message' => UserModule::t('Ваш аккаунт уже активирован.')));
			} elseif(isset($find->hkey) && ($find->hkey==$activkey)) {
				$find->hkey = UserModule::encrypting(microtime());
				$find->approved = 1;
                $find->usergroup_id = UserModule::USERGROUP_USER;
				if ($find->save()) {
					if ($this->checkLoggedIn()) {
						if (($find->id == Yii::app()->user->id) && 0 == Yii::app()->user->approved) {
							Yii::app()->user->approved = 1;
							Yii::app()->user->setFlash('user_profile_msg', UserModule::t('Аккаунт активирован успешно. Спасибо.'));
							$this->redirect(Yii::app()->createUrl('/user/profile'));
						}
					}
					$this->render('response', array('title' => UserModule::t('Активация аккаунта'), 'message' => UserModule::t('Аккаунт активирован успешно. Спасибо.')));
				} else {
					$this->render('response', array('title' => UserModule::t('Активация аккаунта'), 'message' => UserModule::t('Не удалось активировать аккаунт.')));
				}
			} else {
                $this->render('response', array('title' => UserModule::t('Активация аккаунта'), 'message' => UserModule::t('Неверные параметры для активации.')));
			}
		} else {
            $this->render('response', array('title' => UserModule::t('Активация аккаунта'), 'message' => UserModule::t('Неверные параметры для активации.')));
		}
	}    
    
}